package types

import "github.com/shopspring/decimal"

type PickingGetTaskReq struct {
	ProduceDate string `form:"produce_date" validate:"checkDate"`
}

type PickingGetTaskResp struct {
	List        []*PickingGetTaskRespList `json:"list"`
	ProduceDate int64                     `json:"produce_date"` // 生产日期
}

type PickingGetTaskRespList struct {
	BaseRequireCount    decimal.Decimal `json:"base_require_count"`    // 基础品需求数
	BaseSpuID           int64           `json:"base_spu_id"`           // 基础品ID
	BaseSpuName         string          `json:"base_spu_name"`         // 基础品名称
	BaseSpuUnitName     string          `json:"base_spu_unit_name"`    // 单位
	LossRate            decimal.Decimal `json:"loss_rate"`             // 损耗率
	ProcessRequireCount decimal.Decimal `json:"process_require_count"` // 加工品需求数
	ProcessSpuID        int64           `json:"process_spu_id"`        // 加工品ID
	ProcessSpuName      string          `json:"process_spu_name"`      // 加工品名称
	ProductionDetailID  int64           `json:"production_detail_id"`  // 条目ID
}

type PickingGetScanInfoReq struct {
	Code string `form:"code"`
}

type PickingGetScanInfoResp struct {
	BatchNumber    string          `json:"batch_number"`
	ExpirationDate int64           `json:"expiration_date"`
	InventoryCount decimal.Decimal `json:"inventory_count"`
	ShelfCode      string          `json:"shelf_code"`
	SpuID          int64           `json:"spu_id"`
	SpuName        string          `json:"spu_name"`
}
type PickingCreateReq struct {
	InventoryBatchNumber string          `json:"inventory_batch_number"` // 入库批号
	PickingCount         decimal.Decimal `json:"picking_count"`          // 领料数量
	ProductionDetailID   int64           `json:"production_detail_id"`   // 生产计划条目ID
	SpuID                int64           `json:"spu_id"`                 // 商品ID
}

type PickingGetRecordResp struct {
	List    []*PickingGetRecordList `json:"list"`
	SpuName string                  `json:"spu_name"`
}

type PickingGetRecordList struct {
	InventoryBatchNumber string          `json:"inventory_batch_number"`
	PickingCount         decimal.Decimal `json:"picking_count"`
	RemainingCount       decimal.Decimal `json:"remaining_count"`
	ShelfCode            string          `json:"shelf_code"`
}
